package com.industry.framework.core.generic.chooser;

import com.industry.framework.common.page.TableDataInfo;
import com.industry.framework.core.wrapper.QueryTableWrapper;

import java.util.List;
import java.util.Map;

/**
 * @Author nbZhuozh
 * @Date 2025-04-28  15:49
 *
 * 基于业务的选择器.
 * 使用场景：例如前端表单或按钮存在常见的业务数据选择（不同与基于码表的select选择），例如人员选择、角色选择、部门选择、产品选择。
 * 适配组件：下拉框多选、单选。 选择表单多选单选。
 * 适配功能：基础功能可满足单表查询。 可配置多表查询sql及字段满足 关联查询
 *
 * T是接的类型是表的实体， R是对应的dto、vo。
 *
 **/
public abstract class AbstractEntityChooser<T,R> implements Chooser<T,R> {


    @Override
    public abstract List<Map<String, Object>> queryChooseInfoMaps(QueryTableWrapper<T> queryTableWrapper);

    @Override
    public abstract List<R> queryChooseInfoList(QueryTableWrapper<T> queryTableWrapper);

    @Override
    public abstract TableDataInfo<R> queryChooseInfoTableList(QueryTableWrapper<T> queryTableWrapper);




}
